从零开始学习Linux(四十五):Shell编程之sed命令

您所在的位置:网站首页 linux sed -r 从零开始学习Linux(四十五):Shell编程之sed命令

从零开始学习Linux(四十五):Shell编程之sed命令

2023-03-12 21:16| 来源: 网络整理| 查看: 265

1、sed简介

sed是Linux平台中的一种轻量级的流编辑器。 sed主要是用来将数据进行选取、替换、删除、新增的命令。 sed命令不仅可以修改文件内容,还可以修改命令结果,支持管道符操作。而vi/vim命令只能修改文件内容。

2、sed命令

**命令格式:**sed [选项] '[动作]' 文件名

选项说明:

-n:一般sed命令会把所有数据都输出到屏幕,如果加入此选择,则只会把经过sed命令处理的行输出到屏幕; -e:允许对输入数据应用多条sed编辑命令; -i:用sed的修改结果直接修改文件,而不是由屏幕输出;

动作说明:

a:追加,在当前行后添加一行或多行。添加多行时,除最后一行外,每行末尾需要用“\”代表数据未完结; c:行替换,用c后面的字符串替换原数据行,替换多行时,除最后一行外,每行末尾需用“\”代表数据未完结; i : 插入,在当前行插入一行或多行。插入多行时,除最后 一行外,每行末尾需要用“\”代表数据未完结; d:删除,删除指定的行; p:打印,输出指定的行; s:字符串替换,用一个字符串替换另外一个字符串。格式为"行范围s/旧字串/新字串/g"; 3、sed命令示例

测试使用成绩表score.txt,内容如下图所示:

3.1、p使用—输出第二行数据

执行命令:

sed '2p' score.txt 复制代码

从图中可以看到重复输出了第二行,而且其他行也输出了。我们的目的是想只输出第二行,其他的行不输出,此时需要加入-n参数。

执行命令:

sed -n '2p' score.txt 复制代码

3.2、p使用—输出多行数据

执行命令:

sed -n '1,2p' score.txt 复制代码

命令执行结果如下图所示:

3.3、d使用-删除多行数据

执行命令:

sed '2,3d' score.txt 复制代码

从上图中可以看到,删除了第二行到第三行的数据。再次查看文件内容,发现文件本身没有被修改。

3.4、a使用—追加数据

执行命令:

sed '2a hello world' score.txt 复制代码

执行命令:

sed '2a hello \ world!!!' score.txt 复制代码

说明:命令不会改变文件内容!

3.5、i使用—插入多条数据

执行命令:

sed '2i hello \ world!!!' score.txt 复制代码

说明:命令不会改变文件内容!

3.6、c使用—行替换 sed '3c hello world' score.txt 复制代码

命令执行结果如下图所示:

3.7、s使用—字符串替换

sed 's/旧字串/新字串/g' 文件名

执行命令,将Jay的英语成绩更改为99:

sed '2s/92/99/g' score.txt 复制代码

命令执行结果如下图所示:

说明:命令不会改变文件内容!

3.8、修改文件内容

执行命令,将Jay更改为Zhou:

sed -i 's/Jay/Zhou/g' score.txt 复制代码

命令执行结果没有任何返回信息,如下图所示:

再次查看文件内容,发现名称已经变更。

说明:此种场景使用不多,如果真的需要更改文件,直接使用vim命令更加直观也更加可靠!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3